Skip to content

KAFKA-17897: Deprecate Admin.listConsumerGroups [2/N] #6

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 5 commits into
base: trunk
Choose a base branch
from

Conversation

arvi18
Copy link

@arvi18 arvi18 commented Apr 21, 2025

Admin.listConsumerGroups() was able to use the early versions of
ListGroups RPC with the version used dependent upon the filters the user
specified. Admin.listGroups(ListGroupsOptions.forConsumerGroups())
inadvertently required ListGroups v5 because it always set a types
filter. This patch handles the UnsupportedVersionException and winds
back the complexity of the request unless the user has specified filters
which demand a higher version.

It also adds ListGroupsOptions.forShareGroups() and forStreamsGroups().
The usability of Admin.listGroups() is much improved as a result.

@arvi18
Copy link
Author

arvi18 commented Apr 21, 2025

@FrankYang0529 That's an interesting point. I'll put in a change to kafka-consumer-groups.sh in this PR soon. Thanks for the catch.

Copy link

coderabbitai bot commented Apr 21, 2025

Warning

Rate limit exceeded

@arvi18 has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 13 minutes and 47 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between ed79212 and 97a83fa.

📒 Files selected for processing (9)
  • clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java (2 hunks)
  • clients/src/main/java/org/apache/kafka/clients/admin/ListGroupsOptions.java (4 hunks)
  • clients/src/test/java/org/apache/kafka/clients/admin/KafkaAdminClientTest.java (16 hunks)
  • clients/src/test/java/org/apache/kafka/clients/admin/ListGroupsOptionsTest.java (1 hunks)
  • core/src/main/scala/kafka/admin/ConfigCommand.scala (2 hunks)
  • tools/src/main/java/org/apache/kafka/tools/consumer/group/ConsumerGroupCommand.java (1 hunks)
  • tools/src/main/java/org/apache/kafka/tools/consumer/group/ShareGroupCommand.java (3 hunks)
  • tools/src/main/java/org/apache/kafka/tools/streams/StreamsGroupCommand.java (2 hunks)
  • tools/src/test/java/org/apache/kafka/tools/consumer/group/ListConsumerGroupTest.java (1 hunks)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@visz11
Copy link
Collaborator

visz11 commented Jul 16, 2025

/refacto-test

Copy link

refacto-test bot commented Jul 16, 2025

Refacto is reviewing this PR. Please wait for the review comments to be posted.

@@ -3524,44 +3524,62 @@ void handleResponse(AbstractResponse abstractResponse) {
for (final Node node : allNodes) {
final long nowList = time.milliseconds();
runnable.call(new Call("listGroups", deadline, new ConstantNodeIdProvider(node.id())) {

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Backward Compatibility Risk: The fallback mechanism in listGroups for handling UnsupportedVersionException is only enabled when regularConsumerGroupTypes is true. This could lead to inconsistent behavior when working with older broker versions depending on the options used.

Consider expanding the fallback mechanism to work with all group type filters or clearly document this limitation.

groupState = Optional.empty();
} else {
groupState = Optional.of(GroupState.parse(group.groupState()));
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Complexity: The handleResponse method has become quite complex with nested conditionals and multiple responsibilities (parsing response, handling errors, filtering groups, etc).

Consider extracting the filtering logic into a separate method to improve readability and maintainability.

groupState = Optional.empty();
} else {
groupState = Optional.of(GroupState.parse(group.groupState()));
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Performance Consideration: The maybeAddGroup method performs filtering of protocol types in the client rather than at the broker level, which could be less efficient when dealing with large numbers of groups.

Consider investigating if this filtering can be pushed to the server side for better efficiency with large result sets.

@visz11
Copy link
Collaborator

visz11 commented Jul 16, 2025

/refacto-test

1 similar comment
@visz11
Copy link
Collaborator

visz11 commented Jul 16, 2025

/refacto-test

Copy link

refacto-test bot commented Jul 16, 2025

🤖 Refacto.AI: PR Summary & Reviewer Guide

Warning: Requirements context (e.g., linked ticket) was not provided. Analysis is based solely on PR metadata and code diff, which may be incomplete.

🎯 1. The Goal (Why was this PR raised?)

This PR aims to deprecate the Admin.listConsumerGroups() method as part of a larger effort (KAFKA-17897) to improve the group management API. The goal is to replace the deprecated method with more specific, type-safe alternatives while maintaining backward compatibility.

🗺️ 2. The Changes (What was implemented?)

Goal / Requirement Addressed Implementation Details (File & Key Changes)
Add specialized group listing options clients/src/main/java/org/apache/kafka/clients/admin/ListGroupsOptions.java (Modified):
- Added factory methods forConsumerGroups(), forShareGroups(), and forStreamsGroups() to create type-specific options.
- Added protocol type filtering capability through withProtocolTypes() method.
- Added internal flag regularConsumerGroupTypes to handle backward compatibility with older brokers.
Add test coverage for new options clients/src/test/java/org/apache/kafka/clients/admin/ListGroupsOptionsTest.java (Added):
- Added comprehensive tests for all new factory methods and filtering options.
- Tests verify correct behavior for consumer groups, share groups, and streams groups options.
Handle backward compatibility clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java (Modified):
- Added logic to handle UnsupportedVersionException by falling back to earlier request versions when possible.
- Added protocol type filtering in the client side to maintain compatibility with older brokers.
- Modified request creation to adapt to broker capabilities.
Update command line tools tools/src/main/java/org/apache/kafka/tools/consumer/group/ConsumerGroupCommand.java (Modified):
- Updated the consumer group type validation to use a fixed set of valid types.

tools/src/main/java/org/apache/kafka/tools/consumer/group/ShareGroupCommand.java (Modified):
- Updated to use the new ListGroupsOptions.forShareGroups() factory method.

tools/src/main/java/org/apache/kafka/tools/streams/StreamsGroupCommand.java (Modified):
- Updated to use the new ListGroupsOptions.forStreamsGroups() factory method.
Maintain backward compatibility clients/src/test/java/org/apache/kafka/clients/admin/KafkaAdminClientTest.java (Modified):
- Added new tests for the new group listing methods while keeping tests for deprecated methods.
- Added tests for protocol type filtering and handling of older broker versions.

🤔 3. Key Areas for Human Review

Area of Concern: Backward Compatibility Logic

  • File: clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java (Lines 3524-3617)
  • Why: This change modifies critical backward compatibility logic that determines how to handle unsupported versions when communicating with older brokers. An error here could impact users with mixed-version Kafka clusters.
  • Testing Instruction: Test the client against both old (pre-4.0.0) and new broker versions to ensure it correctly adapts the request format based on broker capabilities.

Area of Concern: Protocol Type Filtering

  • File: clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java (Lines 3547-3570)
  • Why: The new client-side protocol type filtering logic is complex and critical for correct group filtering. This is high-impact code that affects which groups are returned to users.
  • Testing Instruction: Test listing groups with various protocol type filters to ensure only groups with matching protocol types are returned, especially in mixed group type environments.

Area of Concern: Factory Method Correctness

  • File: clients/src/main/java/org/apache/kafka/clients/admin/ListGroupsOptions.java (Lines 36-60)
  • Why: The new factory methods (forConsumerGroups(), forShareGroups(), and forStreamsGroups()) are the primary interface for users to interact with the new API. They must correctly set the appropriate filters.
  • Testing Instruction: Verify that each factory method correctly filters for the intended group types by testing against a cluster with multiple group types.

Area of Concern: Command Line Tool Updates

  • File: tools/src/main/java/org/apache/kafka/tools/consumer/group/ConsumerGroupCommand.java (Lines 177-186)
  • Why: The consumer group command validation logic was modified to use a fixed set of valid types, which could impact users of the command line tools.
  • Testing Instruction: Test the consumer group command with various type arguments to ensure it correctly validates and rejects invalid types.

Copy link

refacto-test bot commented Jul 16, 2025

Refacto is reviewing this PR. Please wait for the review comments to be posted.

@visz11
Copy link
Collaborator

visz11 commented Jul 18, 2025

/refacto-test

Copy link

refacto-test bot commented Jul 18, 2025

🤖 Refacto.AI: PR Summary & Reviewer Guide

Warning: Requirements context (e.g., linked ticket) was not provided. Analysis is based solely on PR metadata and code diff, which may be incomplete.

🎯 1. The Goal (Why was this PR raised?)

This PR aims to deprecate Admin.listConsumerGroups() method as part of a larger refactoring effort (KAFKA-17897), introducing more specific and flexible group listing options. The change focuses on providing better typed factory methods for listing different types of groups while maintaining backward compatibility.

🗺️ 2. The Changes (What was implemented?)

File Name Implementation Details Goal / Requirement Addressed
clients/src/main/java/org/apache/kafka/clients/admin/ListGroupsOptions.java (Modified) Added new factory methods (forShareGroups(), forStreamsGroups()), improved documentation, and added internal flag to track regular consumer group types. Add typed factory methods for different group types
clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java (Modified) Enhanced listGroups implementation to handle protocol type filtering and added backward compatibility for older broker versions that don't support type filtering. Implement backward compatibility
clients/src/test/java/org/apache/kafka/clients/admin/ListGroupsOptionsTest.java (Added) Added comprehensive tests for the new factory methods and filtering options. Test new group listing functionality
clients/src/test/java/org/apache/kafka/clients/admin/KafkaAdminClientTest.java (Modified) Added tests for protocol type filtering and renamed existing tests to mark them as deprecated. Test protocol type filtering
tools/src/main/java/org/apache/kafka/tools/ (Modified) Updated various command tools to use the new factory methods instead of manually constructing options. Update client tools
core/src/main/scala/kafka/admin/ConfigCommand.scala (Modified) Removed ListGroupsOptions import and simplified listGroups() call. Simplify API usage

🤔 3. Key Areas for Human Review

Area of Concern: Backward Compatibility Logic

  • File: clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java (Lines 3524-3600)
  • Why: This code handles compatibility with older broker versions by attempting to use earlier request versions when UnsupportedVersionException is thrown. The logic is complex and critical for ensuring the API works with mixed-version clusters.
  • Testing Instruction: Test the listGroups API against older broker versions (pre-4.0.0) to verify that it correctly falls back to earlier request versions when type filtering is not supported.

Area of Concern: Factory Method Behavior

  • File: clients/src/main/java/org/apache/kafka/clients/admin/ListGroupsOptions.java (Lines 36-60)
  • Why: The PR introduces three new factory methods that set up different filtering options. It's important to ensure they correctly set up the appropriate filters.
  • Testing Instruction: Verify that each factory method (forConsumerGroups(), forShareGroups(), and forStreamsGroups()) correctly sets up the appropriate type and protocol type filters by examining the test cases in ListGroupsOptionsTest.java.

Area of Concern: Protocol Type Filtering

  • File: clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java (Lines 3547-3574)
  • Why: The PR adds client-side protocol type filtering which is a significant change to how group filtering works. This could impact performance or correctness if not implemented properly.
  • Testing Instruction: Test scenarios where protocol type filtering is used, especially with mixed group types, to ensure that the filtering logic correctly includes or excludes groups based on their protocol types.

Area of Concern: Tool Compatibility

  • File: tools/src/main/java/org/apache/kafka/tools/streams/StreamsGroupCommand.java and other tool files
  • Why: The PR updates several command-line tools to use the new factory methods. It's important to ensure these tools continue to work as expected.
  • Testing Instruction: Run the updated command-line tools (especially kafka-consumer-groups, kafka-streams-application-reset, and any tools that list groups) to verify they still function correctly with the new API.

Copy link

refacto-test bot commented Jul 18, 2025

Refacto is reviewing this PR. Please wait for the review comments to be posted.

@visz11
Copy link
Collaborator

visz11 commented Jul 18, 2025

/refacto-test

Copy link

refacto-test bot commented Jul 18, 2025

🤖 Refacto.AI: PR Summary & Reviewer Guide

Warning: Requirements context (e.g., linked ticket) was not provided. Analysis is based solely on PR metadata and code diff, which may be incomplete.

🎯 1. The Goal (Why was this PR raised?)

This PR aims to deprecate the Admin.listConsumerGroups() method as part of a larger effort (marked as 2/N) to improve and standardize the group listing API in Kafka. The goal is to provide more specialized methods for listing different types of groups with appropriate filtering options.

🗺️ 2. The Changes (What was implemented?)

File Name Implementation Details Goal / Requirement Addressed
clients/src/test/java/org/apache/kafka/clients/admin/ListGroupsOptionsTest.java (Added) Added new test class that verifies the functionality of the ListGroupsOptions class, including testing the new factory methods for consumer groups, share groups, and streams groups. Add test coverage for new API methods
clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java (Modified) Enhanced the ListGroups implementation to handle protocol type filtering and added backward compatibility support for older broker versions when listing consumer groups. Improve group listing API
clients/src/main/java/org/apache/kafka/clients/admin/ListGroupsOptions.java (Modified) Added new factory methods (forConsumerGroups(), forShareGroups(), forStreamsGroups()) and enhanced filtering capabilities with protocol types. Add specialized group listing methods
clients/src/test/java/org/apache/kafka/clients/admin/KafkaAdminClientTest.java (Modified) Added and updated tests for the new group listing functionality, including tests for protocol type filtering and backward compatibility. Add test coverage for new API methods
tools/src/main/java/org/apache/kafka/tools/consumer/group/ConsumerGroupCommand.java (Modified) Updated the consumer group type validation to restrict to only valid consumer group types. Improve validation in CLI tools
tools/src/main/java/org/apache/kafka/tools/consumer/group/ShareGroupCommand.java (Modified) Updated to use the new ListGroupsOptions.forShareGroups() factory method. Update CLI tools to use new API
tools/src/main/java/org/apache/kafka/tools/streams/StreamsGroupCommand.java (Modified) Updated to use the new ListGroupsOptions.forStreamsGroups() factory method. Update CLI tools to use new API
core/src/main/scala/kafka/admin/ConfigCommand.scala (Modified) Removed the import for ListGroupsOptions and simplified the group listing call. Update admin tools to use new API
tools/src/test/java/org/apache/kafka/tools/consumer/group/ListConsumerGroupTest.java (Modified) Added tests to verify that non-consumer group types are rejected by the consumer group command. Add test coverage for validation

🤔 3. Key Areas for Human Review

Area of Concern: Backward Compatibility in KafkaAdminClient

  • File: clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java (Lines 3524-3600)
  • Why: This change modifies how the client handles older broker versions when listing groups. The code now attempts to use an earlier request version if an UnsupportedVersionException is thrown, but only for regular consumer group types.
  • Testing Instruction: Test the listGroups method with ListGroupsOptions.forConsumerGroups() against both older and newer broker versions to verify that the fallback mechanism works correctly.

Area of Concern: Factory Methods in ListGroupsOptions

  • File: clients/src/main/java/org/apache/kafka/clients/admin/ListGroupsOptions.java (Lines 36-78)
  • Why: The PR introduces three new factory methods that create specialized options for different group types. These methods are critical as they will be the recommended way to list groups after the deprecation.
  • Testing Instruction: Verify that each factory method (forConsumerGroups, forShareGroups, forStreamsGroups) correctly sets the appropriate filters and works as expected when used with the Admin client.

Area of Concern: Protocol Type Filtering

  • File: clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java (Lines 3550-3582)
  • Why: The PR adds protocol type filtering in the maybeAddGroup method, which is a significant change to how groups are filtered on the client side.
  • Testing Instruction: Test listing groups with different protocol type filters to ensure that only groups with matching protocol types are returned.

Area of Concern: CLI Tool Updates

  • Files: tools/src/main/java/org/apache/kafka/tools/consumer/group/ShareGroupCommand.java, tools/src/main/java/org/apache/kafka/tools/streams/StreamsGroupCommand.java
  • Why: These tools have been updated to use the new factory methods, which changes how they interact with the Admin client.
  • Testing Instruction: Run the ShareGroupCommand and StreamsGroupCommand tools to list groups and verify that they correctly identify and filter the appropriate group types.

Copy link

refacto-test bot commented Jul 18, 2025

Refacto is reviewing this PR. Please wait for the review comments to be posted.

@visz11
Copy link
Collaborator

visz11 commented Jul 18, 2025

/refacto-test

Copy link

refacto-test bot commented Jul 18, 2025

🤖 Refacto.AI: PR Summary & Reviewer Guide

Warning: Requirements context (e.g., linked ticket) was not provided. Analysis is based solely on PR metadata and code diff, which may be incomplete.

🎯 1. The Goal (Why was this PR raised?)

This PR aims to deprecate the Admin.listConsumerGroups() method and provide alternative methods as part of a larger refactoring effort (indicated by [2/N] in the PR title). The goal is to improve the API for listing different types of groups in Kafka by providing more specific and type-safe methods.

🗺️ 2. The Changes (What was implemented?)

File Name Implementation Details Goal / Requirement Addressed
clients/src/test/java/org/apache/kafka/clients/admin/ListGroupsOptionsTest.java (Added) Added new test class for ListGroupsOptions with tests for consumer groups, share groups, streams groups, and various filter options. Test new ListGroupsOptions functionality
clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java (Modified) Enhanced the listGroups method to handle protocol type filtering and support backward compatibility with older broker versions. Improve group listing functionality
clients/src/main/java/org/apache/kafka/clients/admin/ListGroupsOptions.java (Modified) Added new factory methods for different group types (forConsumerGroups, forShareGroups, forStreamsGroups) and improved filtering capabilities. Provide type-safe group listing options
clients/src/test/java/org/apache/kafka/clients/admin/KafkaAdminClientTest.java (Modified) Added tests for new group listing functionality and protocol type filtering. Kept deprecated method tests but marked them with @SuppressWarnings("removal"). Test new functionality while maintaining backward compatibility
tools/src/main/java/org/apache/kafka/tools/consumer/group/ConsumerGroupCommand.java (Modified) Updated consumerGroupTypesFromString method to validate against specific valid types. Improve type validation
tools/src/main/java/org/apache/kafka/tools/consumer/group/ShareGroupCommand.java (Modified) Updated to use the new ListGroupsOptions.forShareGroups() factory method. Use new API for share groups
tools/src/main/java/org/apache/kafka/tools/streams/StreamsGroupCommand.java (Modified) Updated to use the new ListGroupsOptions.forStreamsGroups() factory method. Use new API for streams groups
core/src/main/scala/kafka/admin/ConfigCommand.scala (Modified) Removed explicit import of ListGroupsOptions and simplified group listing call. Adapt to API changes
tools/src/test/java/org/apache/kafka/tools/consumer/group/ListConsumerGroupTest.java (Modified) Added tests for invalid group types (Share, streams) in consumerGroupTypesFromString. Validate type restrictions

🤔 3. Key Areas for Human Review

Area of Concern: Backward Compatibility with Older Brokers

  • File: clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java (Lines ~3524-3600)
  • Why: The code introduces a complex mechanism to handle UnsupportedVersionException by trying an earlier request version. This is critical for ensuring backward compatibility with older brokers.
  • Testing Instruction: Test the listGroups method with different options against both newer and older broker versions to verify the fallback mechanism works correctly.

Area of Concern: Protocol Type Filtering

  • File: clients/src/main/java/org/apache/kafka/clients/admin/KafkaAdminClient.java (Lines ~3550-3570)
  • Why: The implementation adds new filtering logic based on protocol types that wasn't present before. This could affect which groups are returned in the results.
  • Testing Instruction: Test the listGroups method with different protocol type filters and verify that only groups with matching protocol types are included in the results.

Area of Concern: Factory Methods Correctness

  • File: clients/src/main/java/org/apache/kafka/clients/admin/ListGroupsOptions.java (Lines ~36-68)
  • Why: The new factory methods (forConsumerGroups, forShareGroups, forStreamsGroups) set up different filters that determine which groups are returned. Any issues here could lead to incorrect filtering.
  • Testing Instruction: Verify that each factory method correctly sets up the appropriate filters by testing them against a cluster with different types of groups.

Area of Concern: Deprecation Impact

  • File: clients/src/test/java/org/apache/kafka/clients/admin/KafkaAdminClientTest.java (Lines ~3268-3413)
  • Why: The PR maintains backward compatibility with deprecated methods while introducing new ones. The tests are marked with @SuppressWarnings("removal"), indicating future removal.
  • Testing Instruction: Ensure that both deprecated and new methods work correctly and that there's clear documentation about the deprecation and migration path.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants